package cc.rengu.igas.bomp.common.dao;


import cc.rengu.igas.bomp.common.entity.ProdAuthCtrl;

import java.util.List;

/**
 * 产品业务权限控制表操作接口类
 * Created by 王成 on 2018/5/25.
 */
public interface ProdAuthCtrlMapper {
    /**
     * 登记产品业务权限控制信息
     *
     * @param prodAuthCtrl 产品业务权限控制信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int inertProdAuthCtrlInfo(ProdAuthCtrl prodAuthCtrl) throws Exception;

    /**
     * 根据非业务主键查询产品业务权限控制信息
     *
     * @param instId 多法人标识
     * @param id     非业务主键
     * @return 产品业务权限控制信息
     * @throws Exception 异常
     */
    ProdAuthCtrl selectProdAuthCtrlInfoById(String instId, String id) throws Exception;

    /**
     * 根据非业务主键更新产品业务权限控制信息
     *
     * @param prodAuthCtrl 产品业务权限控制信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateProdAuthCtrlInfoById(ProdAuthCtrl prodAuthCtrl) throws Exception;

    /**
     * 基于主键查询产品控制信息
     *
     * @param instId       多法人标识
     * @param prodType     产品类型
     * @param baseProdCode 基础产品代码
     * @param txnNum       交易类型
     * @param bizType      业务细分
     * @return 产品业务权限控制信息
     */
    ProdAuthCtrl selectProdAuthCtrlInfoByPrimaryKey(String instId, String prodType, String baseProdCode, String txnNum, String bizType) throws Exception;

    /**
     * 根据控制主体查询产品业务权限控制信息
     *
     * @param instId       多法人标识
     * @param prodType     产品类型
     * @param baseProdCode 基础产品代码
     * @return 产品业务权限控制信息
     */
    List<ProdAuthCtrl> selectProdAuthCtrlInfoByBaseProdCode(String instId, String prodType, String baseProdCode) throws Exception;


    /**
     * 根据控制主体查询产品业务权限控制信息
     *
     * @param instId       多法人标识
     * @param prodType     产品类型
     * @param baseProdCode 基础产品代码
     * @param prodCode     产品代码
     * @return 产品业务权限控制信息
     */
    List<ProdAuthCtrl> selectProdAuthCtrlInfoByProdCode(String instId, String prodType, String baseProdCode, String prodCode) throws Exception;
}
